Intel-Partitionstabelle
From CGSecurity
Wie ist die Partitionstabelle geschrieben?
CHS (Cylinder, Head, Sector)-Werte sind von einer eingestellten Anzahl von Bits für jeden Wert in der 16-Byte-Partitionstabelle begrenzt auf: 1023,254,63. Also können LBA und CHS-Werte nicht gleich für Festplatten größer als 8 GB sein.
Es gibt zwei Arten, den CHS-Wert zu speichern:
- erste Weg
konvertiere LBA zu CHS, speichere (cylinder & 0x3FF, head & 0xFF, sector & 0x3F)
Das ist was Partition Magic (Versionen fr├╝her als 8.0?) macht.
- zweite Weg
konvertiere LBA zu CHS if cylinder <= 1023, speichere (cylinder & 0x3FF, head & 0xFF, sector & 0x3F) else speichere (1023, max_head & 0xFF, max_sector & 0x3F)
Dies ist, was Linux-fdisk und TestDisk tun.
Wenn TestDisk die Partitionstabelle ├╝berpr├╝ft, ber├╝cksichtigt es das beide Wege richtig sein k├╢nnen. Aber der zweite Weg ist besser, weil der CHS-Anfang ist immer niedriger oder gleich zum CHS-Ende.
Beispiel: Die logische Geometrie einer Festplatte sind 255 K├╢pfe pro Zylinder und 63 Sektoren pro Kopf. Eine Partition beginnt bei LBA=46781280 oder CHS=2912,0,1. Diese Partition endet bei 3072,254,63.
- Erste Weg:
Start: 864, 0, 1 Ende: 0,254,63
- Zweite Weg:
Start: 1023,254,63 Ende: 1023,254,63
NB: 1023 = 0x3FF
(1023*255+254)*63+63-1=16450559
(2912*255+ 0)*63+ 1-1=46781280
Partition Magic (vor Version 8,0?) betrachtet den zweiten Weg als ung├╝ltig; obwohl es ein vereinbarter Standard ist. TestDisk bearbeitet beides, ohne sich zu beschweren.
Zur├╝ck zur TestDisk Hauptseite